Soru & Cevap

Flutter Beyaz Ekran Hatası

29.09.2022 - 11:51

 Flutter ile hazırladığım webview projemde web sitemdeki yerel bildirimlerin çalışmasını sağlayan özel bir çalışma yaptım.

main.dart dosyasına eklediğim küçük bir komutla kullanıcıların id'lerini veritabanıma yazdırabiliyorum.

Ancak uygulamamda 'Beyaz Ekran' sorunu görünmeye başlıyor.

Uygulama ilk açıldığında açılış ekranı geliyor ardından beyaz ekran geliyor, beyaz ekranı geçmiyor ve takılı kalıyor.

Uygulama bu sorunu yalnızca kurulumdan sonraki ilk çalıştırmada gösteriyor, bir kez kapatılıp açıldığında, bu sorun bir daha asla olmuyor.

Bazı denemelerde takılı kalan beyaz ekranın üstesinden geldim ama bu sefer bildirimler çalışmıyor.

Önerileriniz nelerdir? Bu sorunu nasıl çözebilirim?

Söz konusu kod (main.dart dosyasında):

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  // await FlutterDownloader.initialize(debug: true);
  HttpOverrides.global = HttpOverridesSkipCertificate();
  await initialize();
  appStore.setDarkMode(aIsDarkMode: getBoolAsync(isDarkModeOnPref));
  appStore.setLanguage(getStringAsync(APP_LANGUAGE, defaultValue: 'en'));
  var token = '';
  SharedPreferences prefs;
  if (isMobile) {
    prefs = await SharedPreferences.getInstance();
    MobileAds.instance.initialize();
    await OneSignal.shared
        .setAppId(getStringAsync(ONESINGLE, defaultValue: mOneSignalID));
    OneSignal.shared.consentGranted(true);
    OneSignal.shared.promptUserForPushNotificationPermission();
    OneSignal.shared
        .setSubscriptionObserver((OSSubscriptionStateChanges changes) async {
      if (changes.to.userId.toString() != '') {
        token = changes.to.userId!;
        print("ilkToken: " + token);
        if (token != null) await prefs.setString('token', token);
      }
    });
    var status = await OneSignal.shared.getDeviceState();
    token = status!.userId!;
    if (token != null) await prefs.setString('token', token);
  }
  runApp(MyApp());
}

Bu şekilde değiştirdiğimde 'Beyaz Ekran' sorununu aşıyorum ancak bildirimler çalışmıyor:

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  // await FlutterDownloader.initialize(debug: true);
  HttpOverrides.global = HttpOverridesSkipCertificate();
  await initialize();
  appStore.setDarkMode(aIsDarkMode: getBoolAsync(isDarkModeOnPref));
  appStore.setLanguage(getStringAsync(APP_LANGUAGE, defaultValue: 'en'));
  var token = '';
  SharedPreferences prefs;
  if (isMobile) {
    prefs = await SharedPreferences.getInstance();
    MobileAds.instance.initialize();
    await OneSignal.shared
        .setAppId(getStringAsync(ONESINGLE, defaultValue: mOneSignalID));
    OneSignal.shared.consentGranted(true);
    OneSignal.shared.promptUserForPushNotificationPermission();
    OneSignal.shared
        .setSubscriptionObserver((OSSubscriptionStateChanges changes) async {
      if (changes.to.userId!=null && changes.to.userId.toString() != '') {
        token = changes.to.userId!;
        if (token != null) await prefs.setString('token', token);
      }
    });
    var status = await OneSignal.shared.getDeviceState();
    if(status!.userId!=null){
      token = status.userId!;
      if (token != null) await prefs.setString('token', token);
    }

  }
  runApp(MyApp());
}

 

192 Görüntülenme

3 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user aycacesmebasi
aycacesmebasi
03.10.2022 - 09:18

.

Profile picture for user aycacesmebasi
aycacesmebasi
03.10.2022 - 09:17

.

Profile picture for user aycacesmebasi
aycacesmebasi
03.10.2022 - 09:16

.